<!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.0 Transitional//EN" "http://www.w3.org/TR/REC-html40/loose.dtd">
<html>
<head>
<title>EdgeAligningView.swift - Slather</title>
<link href="slather.css" media="all" rel="stylesheet">
</head>
<body>
<header><div class="row"><a href="index.html"><img src="logo.jpg" alt="Slather logo"></a></div></header><div class="row"><div id="reports">
<h2 class="cov_title">
<span>Coverage for "EdgeAligningView.swift" : </span><span class="cov_low">0.00%</span>
</h2>
<h4 class="cov_subtitle">(0 of 96 relevant lines covered)</h4>
<h4 class="cov_filepath">ChatLayout/Classes/Extras/EdgeAligningView.swift</h4>
<table class="source_code">
<tr class="never">
<td class="num">1</td>
<td class="src"><pre><code class="objc">//</code></pre></td>
<td class="coverage"></td>
</tr>
<tr class="never">
<td class="num">2</td>
<td class="src"><pre><code class="objc">// ChatLayout</code></pre></td>
<td class="coverage"></td>
</tr>
<tr class="never">
<td class="num">3</td>
<td class="src"><pre><code class="objc">// EdgeAligningView.swift</code></pre></td>
<td class="coverage"></td>
</tr>
<tr class="never">
<td class="num">4</td>
<td class="src"><pre><code class="objc">// https://github.com/ekazaev/ChatLayout</code></pre></td>
<td class="coverage"></td>
</tr>
<tr class="never">
<td class="num">5</td>
<td class="src"><pre><code class="objc">//</code></pre></td>
<td class="coverage"></td>
</tr>
<tr class="never">
<td class="num">6</td>
<td class="src"><pre><code class="objc">// Created by Eugene Kazaev in 2020-2023.</code></pre></td>
<td class="coverage"></td>
</tr>
<tr class="never">
<td class="num">7</td>
<td class="src"><pre><code class="objc">// Distributed under the MIT license.</code></pre></td>
<td class="coverage"></td>
</tr>
<tr class="never">
<td class="num">8</td>
<td class="src"><pre><code class="objc">//</code></pre></td>
<td class="coverage"></td>
</tr>
<tr class="never">
<td class="num">9</td>
<td class="src"><pre><code class="objc">// Become a sponsor:</code></pre></td>
<td class="coverage"></td>
</tr>
<tr class="never">
<td class="num">10</td>
<td class="src"><pre><code class="objc">// https://github.com/sponsors/ekazaev</code></pre></td>
<td class="coverage"></td>
</tr>
<tr class="never">
<td class="num">11</td>
<td class="src"><pre><code class="objc">//</code></pre></td>
<td class="coverage"></td>
</tr>
<tr class="never">
<td class="num">12</td>
<td class="src"><pre><code class="objc"></code></pre></td>
<td class="coverage"></td>
</tr>
<tr class="never">
<td class="num">13</td>
<td class="src"><pre><code class="objc">import Foundation</code></pre></td>
<td class="coverage"></td>
</tr>
<tr class="never">
<td class="num">14</td>
<td class="src"><pre><code class="objc">import UIKit</code></pre></td>
<td class="coverage"></td>
</tr>
<tr class="never">
<td class="num">15</td>
<td class="src"><pre><code class="objc"></code></pre></td>
<td class="coverage"></td>
</tr>
<tr class="never">
<td class="num">16</td>
<td class="src"><pre><code class="objc">/// Container view that allows its `CustomView` to have lose connection to the margins of the container according to the</code></pre></td>
<td class="coverage"></td>
</tr>
<tr class="never">
<td class="num">17</td>
<td class="src"><pre><code class="objc">/// settings provided in `EdgeAligningView.flexibleEdges`</code></pre></td>
<td class="coverage"></td>
</tr>
<tr class="never">
<td class="num">18</td>
<td class="src"><pre><code class="objc">public final class EdgeAligningView&lt;CustomView: UIView&gt;: UIView {</code></pre></td>
<td class="coverage"></td>
</tr>
<tr class="never">
<td class="num">19</td>
<td class="src"><pre><code class="objc"></code></pre></td>
<td class="coverage"></td>
</tr>
<tr class="never">
<td class="num">20</td>
<td class="src"><pre><code class="objc">    /// Represents an edge of `EdgeAligningView`</code></pre></td>
<td class="coverage"></td>
</tr>
<tr class="never">
<td class="num">21</td>
<td class="src"><pre><code class="objc">    public enum Edge: CaseIterable {</code></pre></td>
<td class="coverage"></td>
</tr>
<tr class="never">
<td class="num">22</td>
<td class="src"><pre><code class="objc"></code></pre></td>
<td class="coverage"></td>
</tr>
<tr class="never">
<td class="num">23</td>
<td class="src"><pre><code class="objc">        /// Top edge</code></pre></td>
<td class="coverage"></td>
</tr>
<tr class="never">
<td class="num">24</td>
<td class="src"><pre><code class="objc">        case top</code></pre></td>
<td class="coverage"></td>
</tr>
<tr class="never">
<td class="num">25</td>
<td class="src"><pre><code class="objc"></code></pre></td>
<td class="coverage"></td>
</tr>
<tr class="never">
<td class="num">26</td>
<td class="src"><pre><code class="objc">        /// Leading edge</code></pre></td>
<td class="coverage"></td>
</tr>
<tr class="never">
<td class="num">27</td>
<td class="src"><pre><code class="objc">        case leading</code></pre></td>
<td class="coverage"></td>
</tr>
<tr class="never">
<td class="num">28</td>
<td class="src"><pre><code class="objc"></code></pre></td>
<td class="coverage"></td>
</tr>
<tr class="never">
<td class="num">29</td>
<td class="src"><pre><code class="objc">        /// Trailing edge</code></pre></td>
<td class="coverage"></td>
</tr>
<tr class="never">
<td class="num">30</td>
<td class="src"><pre><code class="objc">        case trailing</code></pre></td>
<td class="coverage"></td>
</tr>
<tr class="never">
<td class="num">31</td>
<td class="src"><pre><code class="objc"></code></pre></td>
<td class="coverage"></td>
</tr>
<tr class="never">
<td class="num">32</td>
<td class="src"><pre><code class="objc">        /// Bottom edge</code></pre></td>
<td class="coverage"></td>
</tr>
<tr class="never">
<td class="num">33</td>
<td class="src"><pre><code class="objc">        case bottom</code></pre></td>
<td class="coverage"></td>
</tr>
<tr class="never">
<td class="num">34</td>
<td class="src"><pre><code class="objc"></code></pre></td>
<td class="coverage"></td>
</tr>
<tr class="missed">
<td class="num">35</td>
<td class="src"><pre><code class="objc">        var otherEdges: [Edge] {</code></pre></td>
<td class="coverage">!</td>
</tr>
<tr class="missed">
<td class="num">36</td>
<td class="src"><pre><code class="objc">            Edge.allCases.filter { $0 != self }</code></pre></td>
<td class="coverage">!</td>
</tr>
<tr class="missed">
<td class="num">37</td>
<td class="src"><pre><code class="objc">        }</code></pre></td>
<td class="coverage">!</td>
</tr>
<tr class="never">
<td class="num">38</td>
<td class="src"><pre><code class="objc"></code></pre></td>
<td class="coverage"></td>
</tr>
<tr class="never">
<td class="num">39</td>
<td class="src"><pre><code class="objc">    }</code></pre></td>
<td class="coverage"></td>
</tr>
<tr class="never">
<td class="num">40</td>
<td class="src"><pre><code class="objc"></code></pre></td>
<td class="coverage"></td>
</tr>
<tr class="never">
<td class="num">41</td>
<td class="src"><pre><code class="objc">    /// Set of edge constraints  to be set as loose.</code></pre></td>
<td class="coverage"></td>
</tr>
<tr class="missed">
<td class="num">42</td>
<td class="src"><pre><code class="objc">    public var flexibleEdges: Set&lt;Edge&gt; = [] {</code></pre></td>
<td class="coverage">!</td>
</tr>
<tr class="missed">
<td class="num">43</td>
<td class="src"><pre><code class="objc">        didSet {</code></pre></td>
<td class="coverage">!</td>
</tr>
<tr class="missed">
<td class="num">44</td>
<td class="src"><pre><code class="objc">            guard flexibleEdges != oldValue else {</code></pre></td>
<td class="coverage">!</td>
</tr>
<tr class="missed">
<td class="num">45</td>
<td class="src"><pre><code class="objc">                return</code></pre></td>
<td class="coverage">!</td>
</tr>
<tr class="missed">
<td class="num">46</td>
<td class="src"><pre><code class="objc">            }</code></pre></td>
<td class="coverage">!</td>
</tr>
<tr class="missed">
<td class="num">47</td>
<td class="src"><pre><code class="objc">            setupContainer()</code></pre></td>
<td class="coverage">!</td>
</tr>
<tr class="missed">
<td class="num">48</td>
<td class="src"><pre><code class="objc">        }</code></pre></td>
<td class="coverage">!</td>
</tr>
<tr class="never">
<td class="num">49</td>
<td class="src"><pre><code class="objc">    }</code></pre></td>
<td class="coverage"></td>
</tr>
<tr class="never">
<td class="num">50</td>
<td class="src"><pre><code class="objc"></code></pre></td>
<td class="coverage"></td>
</tr>
<tr class="never">
<td class="num">51</td>
<td class="src"><pre><code class="objc">    /// Contained view.</code></pre></td>
<td class="coverage"></td>
</tr>
<tr class="never">
<td class="num">52</td>
<td class="src"><pre><code class="objc">    public var customView: CustomView {</code></pre></td>
<td class="coverage"></td>
</tr>
<tr class="missed">
<td class="num">53</td>
<td class="src"><pre><code class="objc">        didSet {</code></pre></td>
<td class="coverage">!</td>
</tr>
<tr class="missed">
<td class="num">54</td>
<td class="src"><pre><code class="objc">            guard customView != oldValue else {</code></pre></td>
<td class="coverage">!</td>
</tr>
<tr class="missed">
<td class="num">55</td>
<td class="src"><pre><code class="objc">                return</code></pre></td>
<td class="coverage">!</td>
</tr>
<tr class="missed">
<td class="num">56</td>
<td class="src"><pre><code class="objc">            }</code></pre></td>
<td class="coverage">!</td>
</tr>
<tr class="missed">
<td class="num">57</td>
<td class="src"><pre><code class="objc">            oldValue.removeFromSuperview()</code></pre></td>
<td class="coverage">!</td>
</tr>
<tr class="missed">
<td class="num">58</td>
<td class="src"><pre><code class="objc">            setupContainer()</code></pre></td>
<td class="coverage">!</td>
</tr>
<tr class="missed">
<td class="num">59</td>
<td class="src"><pre><code class="objc">        }</code></pre></td>
<td class="coverage">!</td>
</tr>
<tr class="never">
<td class="num">60</td>
<td class="src"><pre><code class="objc">    }</code></pre></td>
<td class="coverage"></td>
</tr>
<tr class="never">
<td class="num">61</td>
<td class="src"><pre><code class="objc"></code></pre></td>
<td class="coverage"></td>
</tr>
<tr class="missed">
<td class="num">62</td>
<td class="src"><pre><code class="objc">    private var addedConstraints: [NSLayoutConstraint] = []</code></pre></td>
<td class="coverage">!</td>
</tr>
<tr class="never">
<td class="num">63</td>
<td class="src"><pre><code class="objc"></code></pre></td>
<td class="coverage"></td>
</tr>
<tr class="never">
<td class="num">64</td>
<td class="src"><pre><code class="objc">    /// Initializes and returns a newly allocated `EdgeAligningView`</code></pre></td>
<td class="coverage"></td>
</tr>
<tr class="never">
<td class="num">65</td>
<td class="src"><pre><code class="objc">    /// - Parameters:</code></pre></td>
<td class="coverage"></td>
</tr>
<tr class="never">
<td class="num">66</td>
<td class="src"><pre><code class="objc">    ///   - customView: An instance of `CustomView`</code></pre></td>
<td class="coverage"></td>
</tr>
<tr class="never">
<td class="num">67</td>
<td class="src"><pre><code class="objc">    ///   - flexibleEdges: Set of edges to be set as loose.</code></pre></td>
<td class="coverage"></td>
</tr>
<tr class="missed">
<td class="num">68</td>
<td class="src"><pre><code class="objc">    public init(with customView: CustomView, flexibleEdges: Set&lt;Edge&gt; = [.top]) {</code></pre></td>
<td class="coverage">!</td>
</tr>
<tr class="missed">
<td class="num">69</td>
<td class="src"><pre><code class="objc">        self.customView = customView</code></pre></td>
<td class="coverage">!</td>
</tr>
<tr class="missed">
<td class="num">70</td>
<td class="src"><pre><code class="objc">        self.flexibleEdges = flexibleEdges</code></pre></td>
<td class="coverage">!</td>
</tr>
<tr class="missed">
<td class="num">71</td>
<td class="src"><pre><code class="objc">        super.init(frame: customView.frame)</code></pre></td>
<td class="coverage">!</td>
</tr>
<tr class="missed">
<td class="num">72</td>
<td class="src"><pre><code class="objc">        setupContainer()</code></pre></td>
<td class="coverage">!</td>
</tr>
<tr class="missed">
<td class="num">73</td>
<td class="src"><pre><code class="objc">    }</code></pre></td>
<td class="coverage">!</td>
</tr>
<tr class="never">
<td class="num">74</td>
<td class="src"><pre><code class="objc"></code></pre></td>
<td class="coverage"></td>
</tr>
<tr class="never">
<td class="num">75</td>
<td class="src"><pre><code class="objc">    /// Initializes and returns a newly allocated view object with the specified frame rectangle.</code></pre></td>
<td class="coverage"></td>
</tr>
<tr class="never">
<td class="num">76</td>
<td class="src"><pre><code class="objc">    /// - Parameter frame: The frame rectangle for the view, measured in points. The origin of the frame is relative</code></pre></td>
<td class="coverage"></td>
</tr>
<tr class="never">
<td class="num">77</td>
<td class="src"><pre><code class="objc">    ///   to the superview in which you plan to add it.</code></pre></td>
<td class="coverage"></td>
</tr>
<tr class="missed">
<td class="num">78</td>
<td class="src"><pre><code class="objc">    public override init(frame: CGRect) {</code></pre></td>
<td class="coverage">!</td>
</tr>
<tr class="missed">
<td class="num">79</td>
<td class="src"><pre><code class="objc">        customView = CustomView(frame: frame)</code></pre></td>
<td class="coverage">!</td>
</tr>
<tr class="missed">
<td class="num">80</td>
<td class="src"><pre><code class="objc">        super.init(frame: frame)</code></pre></td>
<td class="coverage">!</td>
</tr>
<tr class="missed">
<td class="num">81</td>
<td class="src"><pre><code class="objc">        setupSubviews()</code></pre></td>
<td class="coverage">!</td>
</tr>
<tr class="missed">
<td class="num">82</td>
<td class="src"><pre><code class="objc">    }</code></pre></td>
<td class="coverage">!</td>
</tr>
<tr class="never">
<td class="num">83</td>
<td class="src"><pre><code class="objc"></code></pre></td>
<td class="coverage"></td>
</tr>
<tr class="never">
<td class="num">84</td>
<td class="src"><pre><code class="objc">    @available(*, unavailable, message: "Use init(with:flexibleEdges:) instead.")</code></pre></td>
<td class="coverage"></td>
</tr>
<tr class="never">
<td class="num">85</td>
<td class="src"><pre><code class="objc">    /// This constructor is unavailable.</code></pre></td>
<td class="coverage"></td>
</tr>
<tr class="missed">
<td class="num">86</td>
<td class="src"><pre><code class="objc">    public required init?(coder: NSCoder) {</code></pre></td>
<td class="coverage">!</td>
</tr>
<tr class="missed">
<td class="num">87</td>
<td class="src"><pre><code class="objc">        fatalError("Use init(with:flexibleEdges:) instead.")</code></pre></td>
<td class="coverage">!</td>
</tr>
<tr class="missed">
<td class="num">88</td>
<td class="src"><pre><code class="objc">    }</code></pre></td>
<td class="coverage">!</td>
</tr>
<tr class="never">
<td class="num">89</td>
<td class="src"><pre><code class="objc"></code></pre></td>
<td class="coverage"></td>
</tr>
<tr class="missed">
<td class="num">90</td>
<td class="src"><pre><code class="objc">    private func setupSubviews() {</code></pre></td>
<td class="coverage">!</td>
</tr>
<tr class="missed">
<td class="num">91</td>
<td class="src"><pre><code class="objc">        translatesAutoresizingMaskIntoConstraints = false</code></pre></td>
<td class="coverage">!</td>
</tr>
<tr class="missed">
<td class="num">92</td>
<td class="src"><pre><code class="objc">        insetsLayoutMarginsFromSafeArea = false</code></pre></td>
<td class="coverage">!</td>
</tr>
<tr class="missed">
<td class="num">93</td>
<td class="src"><pre><code class="objc">        layoutMargins = .zero</code></pre></td>
<td class="coverage">!</td>
</tr>
<tr class="missed">
<td class="num">94</td>
<td class="src"><pre><code class="objc">        setupContainer()</code></pre></td>
<td class="coverage">!</td>
</tr>
<tr class="missed">
<td class="num">95</td>
<td class="src"><pre><code class="objc">    }</code></pre></td>
<td class="coverage">!</td>
</tr>
<tr class="never">
<td class="num">96</td>
<td class="src"><pre><code class="objc"></code></pre></td>
<td class="coverage"></td>
</tr>
<tr class="missed">
<td class="num">97</td>
<td class="src"><pre><code class="objc">    private func setupContainer() {</code></pre></td>
<td class="coverage">!</td>
</tr>
<tr class="missed">
<td class="num">98</td>
<td class="src"><pre><code class="objc">        if customView.superview != self {</code></pre></td>
<td class="coverage">!</td>
</tr>
<tr class="missed">
<td class="num">99</td>
<td class="src"><pre><code class="objc">            customView.removeFromSuperview()</code></pre></td>
<td class="coverage">!</td>
</tr>
<tr class="missed">
<td class="num">100</td>
<td class="src"><pre><code class="objc">            addSubview(customView)</code></pre></td>
<td class="coverage">!</td>
</tr>
<tr class="missed">
<td class="num">101</td>
<td class="src"><pre><code class="objc">        }</code></pre></td>
<td class="coverage">!</td>
</tr>
<tr class="missed">
<td class="num">102</td>
<td class="src"><pre><code class="objc">        customView.translatesAutoresizingMaskIntoConstraints = false</code></pre></td>
<td class="coverage">!</td>
</tr>
<tr class="missed">
<td class="num">103</td>
<td class="src"><pre><code class="objc">        if !addedConstraints.isEmpty {</code></pre></td>
<td class="coverage">!</td>
</tr>
<tr class="missed">
<td class="num">104</td>
<td class="src"><pre><code class="objc">            removeConstraints(addedConstraints)</code></pre></td>
<td class="coverage">!</td>
</tr>
<tr class="missed">
<td class="num">105</td>
<td class="src"><pre><code class="objc">            addedConstraints.removeAll()</code></pre></td>
<td class="coverage">!</td>
</tr>
<tr class="missed">
<td class="num">106</td>
<td class="src"><pre><code class="objc">        }</code></pre></td>
<td class="coverage">!</td>
</tr>
<tr class="missed">
<td class="num">107</td>
<td class="src"><pre><code class="objc">        Set(Edge.allCases).subtracting(flexibleEdges).forEach { setConstraint(for: $0, on: customView, flexible: false) }</code></pre></td>
<td class="coverage">!</td>
</tr>
<tr class="missed">
<td class="num">108</td>
<td class="src"><pre><code class="objc">        flexibleEdges.forEach { setConstraint(for: $0, on: customView, flexible: true) }</code></pre></td>
<td class="coverage">!</td>
</tr>
<tr class="missed">
<td class="num">109</td>
<td class="src"><pre><code class="objc">        setDistributionConstraint(on: customView)</code></pre></td>
<td class="coverage">!</td>
</tr>
<tr class="missed">
<td class="num">110</td>
<td class="src"><pre><code class="objc">        setNeedsLayout()</code></pre></td>
<td class="coverage">!</td>
</tr>
<tr class="missed">
<td class="num">111</td>
<td class="src"><pre><code class="objc">    }</code></pre></td>
<td class="coverage">!</td>
</tr>
<tr class="never">
<td class="num">112</td>
<td class="src"><pre><code class="objc"></code></pre></td>
<td class="coverage"></td>
</tr>
<tr class="missed">
<td class="num">113</td>
<td class="src"><pre><code class="objc">    private func setConstraint(for edge: Edge, on view: UIView, flexible: Bool = false) {</code></pre></td>
<td class="coverage">!</td>
</tr>
<tr class="missed">
<td class="num">114</td>
<td class="src"><pre><code class="objc">        var addedConstraints: [NSLayoutConstraint] = []</code></pre></td>
<td class="coverage">!</td>
</tr>
<tr class="missed">
<td class="num">115</td>
<td class="src"><pre><code class="objc">        switch edge {</code></pre></td>
<td class="coverage">!</td>
</tr>
<tr class="missed">
<td class="num">116</td>
<td class="src"><pre><code class="objc">        case .top:</code></pre></td>
<td class="coverage">!</td>
</tr>
<tr class="missed">
<td class="num">117</td>
<td class="src"><pre><code class="objc">            if flexible {</code></pre></td>
<td class="coverage">!</td>
</tr>
<tr class="missed">
<td class="num">118</td>
<td class="src"><pre><code class="objc">                addedConstraints.append(view.topAnchor.constraint(greaterThanOrEqualTo: layoutMarginsGuide.topAnchor))</code></pre></td>
<td class="coverage">!</td>
</tr>
<tr class="missed">
<td class="num">119</td>
<td class="src"><pre><code class="objc">            } else {</code></pre></td>
<td class="coverage">!</td>
</tr>
<tr class="missed">
<td class="num">120</td>
<td class="src"><pre><code class="objc">                addedConstraints.append(view.topAnchor.constraint(equalTo: layoutMarginsGuide.topAnchor))</code></pre></td>
<td class="coverage">!</td>
</tr>
<tr class="missed">
<td class="num">121</td>
<td class="src"><pre><code class="objc">            }</code></pre></td>
<td class="coverage">!</td>
</tr>
<tr class="missed">
<td class="num">122</td>
<td class="src"><pre><code class="objc">        case .leading:</code></pre></td>
<td class="coverage">!</td>
</tr>
<tr class="missed">
<td class="num">123</td>
<td class="src"><pre><code class="objc">            if flexible {</code></pre></td>
<td class="coverage">!</td>
</tr>
<tr class="missed">
<td class="num">124</td>
<td class="src"><pre><code class="objc">                addedConstraints.append(view.leadingAnchor.constraint(greaterThanOrEqualTo: layoutMarginsGuide.leadingAnchor))</code></pre></td>
<td class="coverage">!</td>
</tr>
<tr class="missed">
<td class="num">125</td>
<td class="src"><pre><code class="objc">            } else {</code></pre></td>
<td class="coverage">!</td>
</tr>
<tr class="missed">
<td class="num">126</td>
<td class="src"><pre><code class="objc">                addedConstraints.append(view.leadingAnchor.constraint(equalTo: layoutMarginsGuide.leadingAnchor))</code></pre></td>
<td class="coverage">!</td>
</tr>
<tr class="missed">
<td class="num">127</td>
<td class="src"><pre><code class="objc">            }</code></pre></td>
<td class="coverage">!</td>
</tr>
<tr class="missed">
<td class="num">128</td>
<td class="src"><pre><code class="objc">        case .trailing:</code></pre></td>
<td class="coverage">!</td>
</tr>
<tr class="missed">
<td class="num">129</td>
<td class="src"><pre><code class="objc">            if flexible {</code></pre></td>
<td class="coverage">!</td>
</tr>
<tr class="missed">
<td class="num">130</td>
<td class="src"><pre><code class="objc">                addedConstraints.append(view.trailingAnchor.constraint(lessThanOrEqualTo: layoutMarginsGuide.trailingAnchor))</code></pre></td>
<td class="coverage">!</td>
</tr>
<tr class="missed">
<td class="num">131</td>
<td class="src"><pre><code class="objc">            } else {</code></pre></td>
<td class="coverage">!</td>
</tr>
<tr class="missed">
<td class="num">132</td>
<td class="src"><pre><code class="objc">                addedConstraints.append(view.trailingAnchor.constraint(equalTo: layoutMarginsGuide.trailingAnchor))</code></pre></td>
<td class="coverage">!</td>
</tr>
<tr class="missed">
<td class="num">133</td>
<td class="src"><pre><code class="objc">            }</code></pre></td>
<td class="coverage">!</td>
</tr>
<tr class="missed">
<td class="num">134</td>
<td class="src"><pre><code class="objc">        case .bottom:</code></pre></td>
<td class="coverage">!</td>
</tr>
<tr class="missed">
<td class="num">135</td>
<td class="src"><pre><code class="objc">            if flexible {</code></pre></td>
<td class="coverage">!</td>
</tr>
<tr class="missed">
<td class="num">136</td>
<td class="src"><pre><code class="objc">                addedConstraints.append(view.bottomAnchor.constraint(lessThanOrEqualTo: layoutMarginsGuide.bottomAnchor))</code></pre></td>
<td class="coverage">!</td>
</tr>
<tr class="missed">
<td class="num">137</td>
<td class="src"><pre><code class="objc">            } else {</code></pre></td>
<td class="coverage">!</td>
</tr>
<tr class="missed">
<td class="num">138</td>
<td class="src"><pre><code class="objc">                addedConstraints.append(view.bottomAnchor.constraint(equalTo: layoutMarginsGuide.bottomAnchor))</code></pre></td>
<td class="coverage">!</td>
</tr>
<tr class="missed">
<td class="num">139</td>
<td class="src"><pre><code class="objc">            }</code></pre></td>
<td class="coverage">!</td>
</tr>
<tr class="missed">
<td class="num">140</td>
<td class="src"><pre><code class="objc">        }</code></pre></td>
<td class="coverage">!</td>
</tr>
<tr class="missed">
<td class="num">141</td>
<td class="src"><pre><code class="objc">        NSLayoutConstraint.activate(addedConstraints)</code></pre></td>
<td class="coverage">!</td>
</tr>
<tr class="missed">
<td class="num">142</td>
<td class="src"><pre><code class="objc">        self.addedConstraints.append(contentsOf: addedConstraints)</code></pre></td>
<td class="coverage">!</td>
</tr>
<tr class="missed">
<td class="num">143</td>
<td class="src"><pre><code class="objc">    }</code></pre></td>
<td class="coverage">!</td>
</tr>
<tr class="never">
<td class="num">144</td>
<td class="src"><pre><code class="objc"></code></pre></td>
<td class="coverage"></td>
</tr>
<tr class="missed">
<td class="num">145</td>
<td class="src"><pre><code class="objc">    private func setDistributionConstraint(on view: UIView) {</code></pre></td>
<td class="coverage">!</td>
</tr>
<tr class="missed">
<td class="num">146</td>
<td class="src"><pre><code class="objc">        if flexibleEdges.contains(.leading), flexibleEdges.contains(.trailing) {</code></pre></td>
<td class="coverage">!</td>
</tr>
<tr class="missed">
<td class="num">147</td>
<td class="src"><pre><code class="objc">            let layoutConstraint = view.centerXAnchor.constraint(equalTo: layoutMarginsGuide.centerXAnchor)</code></pre></td>
<td class="coverage">!</td>
</tr>
<tr class="missed">
<td class="num">148</td>
<td class="src"><pre><code class="objc">            addedConstraints.append(layoutConstraint)</code></pre></td>
<td class="coverage">!</td>
</tr>
<tr class="missed">
<td class="num">149</td>
<td class="src"><pre><code class="objc">            layoutConstraint.isActive = true</code></pre></td>
<td class="coverage">!</td>
</tr>
<tr class="missed">
<td class="num">150</td>
<td class="src"><pre><code class="objc">        }</code></pre></td>
<td class="coverage">!</td>
</tr>
<tr class="missed">
<td class="num">151</td>
<td class="src"><pre><code class="objc">        if flexibleEdges.contains(.top), flexibleEdges.contains(.bottom) {</code></pre></td>
<td class="coverage">!</td>
</tr>
<tr class="missed">
<td class="num">152</td>
<td class="src"><pre><code class="objc">            let layoutConstraint = view.centerYAnchor.constraint(equalTo: layoutMarginsGuide.centerYAnchor)</code></pre></td>
<td class="coverage">!</td>
</tr>
<tr class="missed">
<td class="num">153</td>
<td class="src"><pre><code class="objc">            addedConstraints.append(layoutConstraint)</code></pre></td>
<td class="coverage">!</td>
</tr>
<tr class="missed">
<td class="num">154</td>
<td class="src"><pre><code class="objc">            layoutConstraint.isActive = true</code></pre></td>
<td class="coverage">!</td>
</tr>
<tr class="missed">
<td class="num">155</td>
<td class="src"><pre><code class="objc">        }</code></pre></td>
<td class="coverage">!</td>
</tr>
<tr class="missed">
<td class="num">156</td>
<td class="src"><pre><code class="objc">    }</code></pre></td>
<td class="coverage">!</td>
</tr>
<tr class="never">
<td class="num">157</td>
<td class="src"><pre><code class="objc"></code></pre></td>
<td class="coverage"></td>
</tr>
<tr class="never">
<td class="num">158</td>
<td class="src"><pre><code class="objc">}</code></pre></td>
<td class="coverage"></td>
</tr>
</table>
</div></div>
<footer><div class="row">
<p><a href="https://github.com/SlatherOrg/slather">Fork me on Github</a></p>
<p>&copy; 2023 Slather</p>
</div></footer><script src="highlight.pack.js"></script><script>hljs.initHighlightingOnLoad();</script>
</body>
</html>
